]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
remote-search: initialize the DBus proxy asynchronously
authorCosimo Cecchi <cosimoc@gnome.org>
Thu, 1 Nov 2012 21:28:46 +0000 (17:28 -0400)
committerCosimo Cecchi <cosimoc@gnome.org>
Tue, 6 Nov 2012 23:11:56 +0000 (18:11 -0500)
Initializing this synchronously means that we will possibly wait for the
process to be auto-activated and answering to our call.
If the process is already running it also might not answer immediately
our request, as it might be doing sync I/O.
The right thing to do is to initialize the proxy asynchronously; there
are try/catch blocks in place for when the object is not available, or
not properly initialized.

https://bugzilla.gnome.org/show_bug.cgi?id=687491

js/ui/remoteSearch.js

index c4462e9f23186d66c68e95641e8150fbe2b23265..58283d57af9d39beeeb07e4898a164cf0f8d49be 100644 (file)
@@ -113,12 +113,16 @@ const RemoteSearchProvider = new Lang.Class({
 
     _init: function(title, icon, dbusName, dbusPath) {
         this._proxy = new SearchProviderProxy(Gio.DBus.session,
-                                              dbusName, dbusPath);
+            dbusName, dbusPath, Lang.bind(this, this._onProxyConstructed));
 
         this.parent(title.toUpperCase());
         this._cancellable = new Gio.Cancellable();
     },
 
+    _onProxyConstructed: function(proxy) {
+        // Do nothing
+    },
+
     createIcon: function(size, meta) {
         if (meta['gicon']) {
             return new St.Icon({ gicon: Gio.icon_new_for_string(meta['gicon']),